'''
----银行ATM----
银行ATM存款取款：
1.模拟3张银行卡,1001,1002,1003,分别设置密码和余额(使用列表嵌套字典的方式)；
2.提示用户输入银行卡和密码，遍历每张卡的信息验证是否成功；
3.如果用户输入正确---提示让用户选择取款.存款还是退出,并提示余额多少.  输入错误---重新输入卡号密码；
  选择取款---提示输入取款额度,如果超过余额,提示余额不足;否则,在余额上减掉相应金额；
  选择存款---输入存款额度,余额加上相应额度,并提示余额多少；
  选择退出---重新登录；
4.连续3次输入错误账号密码,提示银行卡已被锁定，程序结束。
'''
card1 = {'id': '1001', 'pwd': '123', 'money': 1100000.0}
card2 = {'id': '1002', 'pwd': '123', 'money': 1200000.0}
card3 = {'id': '1003', 'pwd': '123', 'money': 1300000.0}
card_list = [card1, card2, card3]
tag = 0
login_count = 0
while login_count < 3:
    b_card = input('请输入银行卡号:')
    b_pwd = input("请输入密码:")
    for card in card_list:
        if b_card == card['id'] and b_pwd == card['pwd']:
            b_money: float = card['money']
            tag = 1
            break
    if tag == 1:
        print('登录成功')
        print(f'当前余额为：{b_money}')
        while True:
            choice = input('请选择操作：\n1.取款\n2.存款\n3.退出\n')
            if choice == '1':
                wdl = float(input('请输入取款金额：'))
                if wdl > b_money:
                    print('余额不足')
                else:
                    b_money=b_money - wdl
                    print('取款成功，当前余额为：', b_money)
            elif choice == '2':
                dep = float(input('请输入存款金额：'))
                b_money = b_money + dep
                print('存款成功，当前余额为:',b_money)
            elif choice == '3':
                break
        break
    else:
        login_count += 1
        print('密码错误，剩余尝试次数：', 3-login_count)
if login_count >= 3:
    print('银行卡已被锁定')

'''
----登录函数----
编写一个用户登录逻辑，用户名密码提前设置（列表嵌套字典存储），返回用户登录成功或者失败的结果。
'''
# user1 = {'username': '1001', 'pwd': '123'}
# user2 = {'username': '1002', 'pwd': '123'}
# user3 = {'username': '1003', 'pwd': '123'}
# user_list = [user1, user2, user3]
# tag = 0
# name = input('请输入账号：')
# pwdd = input('请输入密码：')
# for user in user_list:
#     if name == user['username'] and pwdd == user['pwd']:
#         tag = 1
#         break
# if tag == 1:
#     print('登陆成功')
# else:
#     print('登陆失败')

'''
----歌手大赛----
为丰富校园文化生活，学校拟组织一场歌手大赛，从参赛选手中选拔出10名相对突出的学生，授予“校园十大歌手”称号。
比赛设有评委组，每名选手演唱完毕后会由评委组的10名评委打分。
为保证比赛公平公正、防止作弊和恶意打分，计算得分（即打分的平均分）时会先去掉最高分和最低分。
本案例要求编写程序，实现根据需求计算每位选手得分的功能。
'''
# all_student_score = []
# for i in range(1, 11):
#     student_score = []
#     print('请输入第', i, '位选手的评委打分：')
#     for j in range(1, 11):
#         score = float(input(f"请第{j}个评委打分："))
#         student_score.append(score)
#     student_score.sort()
#     student_score = student_score[0:-1]
#     avg_score = sum(student_score) / len(student_score)
#     all_student_score.append(avg_score)
# for i, student_score in all_student_score:
#     print("选手", i, "的得分为：", student_score)

'''
案例：排序算法（冒泡排序）
'''
# nums =[5,4,3,2,1]
# for i in range(len(nums) - 1):
#         for j in range(len(nums) - 1 - i):
#             if nums[j] > nums[j + 1]:
#                 nums[j], nums[j + 1] = nums[j + 1], nums[j]
# print(nums)
